
#pragma warning disable 162

namespace BTSPracCourse.Orchestrations.Processor
{

    [System.SerializableAttribute]
    sealed public class __BTSPracCourse_Orchestrations_Processor_WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming_Multiply__ : Microsoft.XLANGs.Core.XSDPart
    {
        private static BTSPracCourse.Orchestrations.Processor.WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming.Multiply _schema = new BTSPracCourse.Orchestrations.Processor.WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming.Multiply();

        public __BTSPracCourse_Orchestrations_Processor_WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming_Multiply__(Microsoft.XLANGs.Core.XMessage msg, string name, int index) : base(msg, name, index) { }

        
        #region part reflection support
        public static Microsoft.XLANGs.BaseTypes.SchemaBase PartSchema { get { return (Microsoft.XLANGs.BaseTypes.SchemaBase)_schema; } }
        #endregion // part reflection support
    }

    [Microsoft.XLANGs.BaseTypes.MessageTypeAttribute(
        Microsoft.XLANGs.BaseTypes.EXLangSAccess.eInternal,
        Microsoft.XLANGs.BaseTypes.EXLangSMessageInfo.eNone,
        "",
        new System.Type[]{
            typeof(BTSPracCourse.Orchestrations.Processor.WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming.Multiply)
        },
        new string[]{
            "parameters"
        },
        new System.Type[]{
            typeof(__BTSPracCourse_Orchestrations_Processor_WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming_Multiply__)
        },
        0,
        @"http://www.MoustafaRefaat.com/Orchestrations.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming#Multiply"
    )]
    [System.SerializableAttribute]
    sealed internal class IWcfMultiplierService_Multiply_InputMessage : Microsoft.BizTalk.XLANGs.BTXEngine.BTXMessage
    {
        public __BTSPracCourse_Orchestrations_Processor_WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming_Multiply__ parameters;

        private void __CreatePartWrappers()
        {
            parameters = new __BTSPracCourse_Orchestrations_Processor_WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming_Multiply__(this, "parameters", 0);
            this.AddPart("parameters", 0, parameters);
        }

        public IWcfMultiplierService_Multiply_InputMessage(string msgName, Microsoft.XLANGs.Core.Context ctx) : base(msgName, ctx)
        {
            __CreatePartWrappers();
        }
    }

    [System.SerializableAttribute]
    sealed public class __BTSPracCourse_Orchestrations_Processor_WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming_MultiplyResponse__ : Microsoft.XLANGs.Core.XSDPart
    {
        private static BTSPracCourse.Orchestrations.Processor.WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming.MultiplyResponse _schema = new BTSPracCourse.Orchestrations.Processor.WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming.MultiplyResponse();

        public __BTSPracCourse_Orchestrations_Processor_WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming_MultiplyResponse__(Microsoft.XLANGs.Core.XMessage msg, string name, int index) : base(msg, name, index) { }

        
        #region part reflection support
        public static Microsoft.XLANGs.BaseTypes.SchemaBase PartSchema { get { return (Microsoft.XLANGs.BaseTypes.SchemaBase)_schema; } }
        #endregion // part reflection support
    }

    [Microsoft.XLANGs.BaseTypes.MessageTypeAttribute(
        Microsoft.XLANGs.BaseTypes.EXLangSAccess.eInternal,
        Microsoft.XLANGs.BaseTypes.EXLangSMessageInfo.eNone,
        "",
        new System.Type[]{
            typeof(BTSPracCourse.Orchestrations.Processor.WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming.MultiplyResponse)
        },
        new string[]{
            "parameters"
        },
        new System.Type[]{
            typeof(__BTSPracCourse_Orchestrations_Processor_WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming_MultiplyResponse__)
        },
        0,
        @"http://www.MoustafaRefaat.com/Orchestrations.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming#MultiplyResponse"
    )]
    [System.SerializableAttribute]
    sealed internal class IWcfMultiplierService_Multiply_OutputMessage : Microsoft.BizTalk.XLANGs.BTXEngine.BTXMessage
    {
        public __BTSPracCourse_Orchestrations_Processor_WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming_MultiplyResponse__ parameters;

        private void __CreatePartWrappers()
        {
            parameters = new __BTSPracCourse_Orchestrations_Processor_WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming_MultiplyResponse__(this, "parameters", 0);
            this.AddPart("parameters", 0, parameters);
        }

        public IWcfMultiplierService_Multiply_OutputMessage(string msgName, Microsoft.XLANGs.Core.Context ctx) : base(msgName, ctx)
        {
            __CreatePartWrappers();
        }
    }

    [Microsoft.XLANGs.BaseTypes.PortTypeOperationAttribute(
        "Multiply",
        new System.Type[]{
            typeof(BTSPracCourse.Orchestrations.Processor.IWcfMultiplierService_Multiply_InputMessage), 
            typeof(BTSPracCourse.Orchestrations.Processor.IWcfMultiplierService_Multiply_OutputMessage)
        },
        new string[]{
        }
    )]
    [Microsoft.XLANGs.BaseTypes.PortTypeAttribute(Microsoft.XLANGs.BaseTypes.EXLangSAccess.eInternal, "")]
    [System.SerializableAttribute]
    sealed internal class IWcfMultiplierService : Microsoft.BizTalk.XLANGs.BTXEngine.BTXPortBase
    {
        public IWcfMultiplierService(int portInfo, Microsoft.XLANGs.Core.IServiceProxy s)
            : base(portInfo, s)
        { }
        public IWcfMultiplierService(IWcfMultiplierService p)
            : base(p)
        { }

        public override Microsoft.XLANGs.Core.PortBase Clone()
        {
            IWcfMultiplierService p = new IWcfMultiplierService(this);
            return p;
        }

        public static readonly Microsoft.XLANGs.BaseTypes.EXLangSAccess __access = Microsoft.XLANGs.BaseTypes.EXLangSAccess.eInternal;
        #region port reflection support
        static public Microsoft.XLANGs.Core.OperationInfo Multiply = new Microsoft.XLANGs.Core.OperationInfo
        (
            "Multiply",
            System.Web.Services.Description.OperationFlow.RequestResponse,
            typeof(IWcfMultiplierService),
            typeof(IWcfMultiplierService_Multiply_InputMessage),
            typeof(IWcfMultiplierService_Multiply_OutputMessage),
            new System.Type[]{},
            new string[]{}
        );
        static public System.Collections.Hashtable OperationsInformation
        {
            get
            {
                System.Collections.Hashtable h = new System.Collections.Hashtable();
                h[ "Multiply" ] = Multiply;
                return h;
            }
        }
        #endregion // port reflection support
    }

    [System.SerializableAttribute]
    sealed public class __BTSPracCourse_Orchestrations_Processor_MultiplyRequestSchema__ : Microsoft.XLANGs.Core.XSDPart
    {
        private static BTSPracCourse.Orchestrations.Processor.MultiplyRequestSchema _schema = new BTSPracCourse.Orchestrations.Processor.MultiplyRequestSchema();

        public __BTSPracCourse_Orchestrations_Processor_MultiplyRequestSchema__(Microsoft.XLANGs.Core.XMessage msg, string name, int index) : base(msg, name, index) { }

        
        #region part reflection support
        public static Microsoft.XLANGs.BaseTypes.SchemaBase PartSchema { get { return (Microsoft.XLANGs.BaseTypes.SchemaBase)_schema; } }
        #endregion // part reflection support
    }

    [Microsoft.XLANGs.BaseTypes.MessageTypeAttribute(
        Microsoft.XLANGs.BaseTypes.EXLangSAccess.ePublic,
        Microsoft.XLANGs.BaseTypes.EXLangSMessageInfo.eThirdKind,
        "BTSPracCourse.Orchestrations.Processor.MultiplyRequestSchema",
        new System.Type[]{
            typeof(BTSPracCourse.Orchestrations.Processor.MultiplyRequestSchema)
        },
        new string[]{
            "part"
        },
        new System.Type[]{
            typeof(__BTSPracCourse_Orchestrations_Processor_MultiplyRequestSchema__)
        },
        0,
        @"http://BTSPracCourse.Orchestrations.Processor.MultiplyRequestSchema#Root"
    )]
    [System.SerializableAttribute]
    sealed public class __messagetype_BTSPracCourse_Orchestrations_Processor_MultiplyRequestSchema : Microsoft.BizTalk.XLANGs.BTXEngine.BTXMessage
    {
        public __BTSPracCourse_Orchestrations_Processor_MultiplyRequestSchema__ part;

        private void __CreatePartWrappers()
        {
            part = new __BTSPracCourse_Orchestrations_Processor_MultiplyRequestSchema__(this, "part", 0);
            this.AddPart("part", 0, part);
        }

        public __messagetype_BTSPracCourse_Orchestrations_Processor_MultiplyRequestSchema(string msgName, Microsoft.XLANGs.Core.Context ctx) : base(msgName, ctx)
        {
            __CreatePartWrappers();
        }
    }

    [System.SerializableAttribute]
    sealed public class __BTSPracCourse_Orchestrations_Processor_ResponseSchema__ : Microsoft.XLANGs.Core.XSDPart
    {
        private static BTSPracCourse.Orchestrations.Processor.ResponseSchema _schema = new BTSPracCourse.Orchestrations.Processor.ResponseSchema();

        public __BTSPracCourse_Orchestrations_Processor_ResponseSchema__(Microsoft.XLANGs.Core.XMessage msg, string name, int index) : base(msg, name, index) { }

        
        #region part reflection support
        public static Microsoft.XLANGs.BaseTypes.SchemaBase PartSchema { get { return (Microsoft.XLANGs.BaseTypes.SchemaBase)_schema; } }
        #endregion // part reflection support
    }

    [Microsoft.XLANGs.BaseTypes.MessageTypeAttribute(
        Microsoft.XLANGs.BaseTypes.EXLangSAccess.ePublic,
        Microsoft.XLANGs.BaseTypes.EXLangSMessageInfo.eThirdKind,
        "BTSPracCourse.Orchestrations.Processor.ResponseSchema",
        new System.Type[]{
            typeof(BTSPracCourse.Orchestrations.Processor.ResponseSchema)
        },
        new string[]{
            "part"
        },
        new System.Type[]{
            typeof(__BTSPracCourse_Orchestrations_Processor_ResponseSchema__)
        },
        0,
        @"http://BTSPracCourse.Orchestrations.Processor.ResponseSchema#Root"
    )]
    [System.SerializableAttribute]
    sealed public class __messagetype_BTSPracCourse_Orchestrations_Processor_ResponseSchema : Microsoft.BizTalk.XLANGs.BTXEngine.BTXMessage
    {
        public __BTSPracCourse_Orchestrations_Processor_ResponseSchema__ part;

        private void __CreatePartWrappers()
        {
            part = new __BTSPracCourse_Orchestrations_Processor_ResponseSchema__(this, "part", 0);
            this.AddPart("part", 0, part);
        }

        public __messagetype_BTSPracCourse_Orchestrations_Processor_ResponseSchema(string msgName, Microsoft.XLANGs.Core.Context ctx) : base(msgName, ctx)
        {
            __CreatePartWrappers();
        }
    }

    [Microsoft.XLANGs.BaseTypes.PortTypeOperationAttribute(
        "Operation_1",
        new System.Type[]{
            typeof(BTSPracCourse.Orchestrations.Processor.__messagetype_BTSPracCourse_Orchestrations_Processor_MultiplyRequestSchema)
        },
        new string[]{
        }
    )]
    [Microsoft.XLANGs.BaseTypes.PortTypeAttribute(Microsoft.XLANGs.BaseTypes.EXLangSAccess.eInternal, "")]
    [System.SerializableAttribute]
    sealed internal class PortType_MultiplyRequest : Microsoft.BizTalk.XLANGs.BTXEngine.BTXPortBase
    {
        public PortType_MultiplyRequest(int portInfo, Microsoft.XLANGs.Core.IServiceProxy s)
            : base(portInfo, s)
        { }
        public PortType_MultiplyRequest(PortType_MultiplyRequest p)
            : base(p)
        { }

        public override Microsoft.XLANGs.Core.PortBase Clone()
        {
            PortType_MultiplyRequest p = new PortType_MultiplyRequest(this);
            return p;
        }

        public static readonly Microsoft.XLANGs.BaseTypes.EXLangSAccess __access = Microsoft.XLANGs.BaseTypes.EXLangSAccess.eInternal;
        #region port reflection support
        static public Microsoft.XLANGs.Core.OperationInfo Operation_1 = new Microsoft.XLANGs.Core.OperationInfo
        (
            "Operation_1",
            System.Web.Services.Description.OperationFlow.OneWay,
            typeof(PortType_MultiplyRequest),
            typeof(__messagetype_BTSPracCourse_Orchestrations_Processor_MultiplyRequestSchema),
            null,
            new System.Type[]{},
            new string[]{}
        );
        static public System.Collections.Hashtable OperationsInformation
        {
            get
            {
                System.Collections.Hashtable h = new System.Collections.Hashtable();
                h[ "Operation_1" ] = Operation_1;
                return h;
            }
        }
        #endregion // port reflection support
    }

    [Microsoft.XLANGs.BaseTypes.PortTypeOperationAttribute(
        "Operation_1",
        new System.Type[]{
            typeof(BTSPracCourse.Orchestrations.Processor.__messagetype_BTSPracCourse_Orchestrations_Processor_MultiplyRequestSchema), 
            typeof(BTSPracCourse.Orchestrations.Processor.__messagetype_BTSPracCourse_Orchestrations_Processor_ResponseSchema)
        },
        new string[]{
        }
    )]
    [Microsoft.XLANGs.BaseTypes.PortTypeAttribute(Microsoft.XLANGs.BaseTypes.EXLangSAccess.ePublic, "")]
    [System.SerializableAttribute]
    sealed public class PortType_BTSMultiply : Microsoft.BizTalk.XLANGs.BTXEngine.BTXPortBase
    {
        public PortType_BTSMultiply(int portInfo, Microsoft.XLANGs.Core.IServiceProxy s)
            : base(portInfo, s)
        { }
        public PortType_BTSMultiply(PortType_BTSMultiply p)
            : base(p)
        { }

        public override Microsoft.XLANGs.Core.PortBase Clone()
        {
            PortType_BTSMultiply p = new PortType_BTSMultiply(this);
            return p;
        }

        public static readonly Microsoft.XLANGs.BaseTypes.EXLangSAccess __access = Microsoft.XLANGs.BaseTypes.EXLangSAccess.ePublic;
        #region port reflection support
        static public Microsoft.XLANGs.Core.OperationInfo Operation_1 = new Microsoft.XLANGs.Core.OperationInfo
        (
            "Operation_1",
            System.Web.Services.Description.OperationFlow.RequestResponse,
            typeof(PortType_BTSMultiply),
            typeof(__messagetype_BTSPracCourse_Orchestrations_Processor_MultiplyRequestSchema),
            typeof(__messagetype_BTSPracCourse_Orchestrations_Processor_ResponseSchema),
            new System.Type[]{},
            new string[]{}
        );
        static public System.Collections.Hashtable OperationsInformation
        {
            get
            {
                System.Collections.Hashtable h = new System.Collections.Hashtable();
                h[ "Operation_1" ] = Operation_1;
                return h;
            }
        }
        #endregion // port reflection support
    }
    //#line 316 "E:\BTSPracCourse\BTSPracCourse.Orchestrations.Processor\WcfMultiplierService.odx"
    [Microsoft.XLANGs.BaseTypes.StaticSubscriptionAttribute(
        0, "Port_BTSMultiplyRequest", "Operation_1", -1, -1, true
    )]
    [Microsoft.XLANGs.BaseTypes.ServicePortsAttribute(
        new Microsoft.XLANGs.BaseTypes.EXLangSParameter[] {
            Microsoft.XLANGs.BaseTypes.EXLangSParameter.ePort|Microsoft.XLANGs.BaseTypes.EXLangSParameter.eImplements,
            Microsoft.XLANGs.BaseTypes.EXLangSParameter.ePort|Microsoft.XLANGs.BaseTypes.EXLangSParameter.eUses
        },
        new System.Type[] {
            typeof(BTSPracCourse.Orchestrations.Processor.PortType_BTSMultiply),
            typeof(BTSPracCourse.Orchestrations.Processor.IWcfMultiplierService)
        },
        new System.String[] {
            "Port_BTSMultiplyRequest",
            "Port_WCFService"
        },
        new System.Type[] {
            null,
            null
        }
    )]
    [Microsoft.XLANGs.BaseTypes.ServiceCallTreeAttribute(
        new System.Type[] {
        },
        new System.Type[] {
        },
        new System.Type[] {
        }
    )]
    [Microsoft.XLANGs.BaseTypes.ServiceAttribute(
        Microsoft.XLANGs.BaseTypes.EXLangSAccess.eInternal,
        Microsoft.XLANGs.BaseTypes.EXLangSServiceInfo.eNone
    )]
    [System.SerializableAttribute]
    [Microsoft.XLANGs.BaseTypes.BPELExportableAttribute(false)]
    sealed internal class WcfMultiplierServiceClient : Microsoft.BizTalk.XLANGs.BTXEngine.BTXService
    {
        public static readonly Microsoft.XLANGs.BaseTypes.EXLangSAccess __access = Microsoft.XLANGs.BaseTypes.EXLangSAccess.eInternal;
        public static readonly bool __execable = false;
        [Microsoft.XLANGs.BaseTypes.CallCompensationAttribute(
            Microsoft.XLANGs.BaseTypes.EXLangSCallCompensationInfo.eHasRequestResponse
,
            new System.String[] {
            },
            new System.String[] {
            }
        )]
        public static void __bodyProxy()
        {
        }
        private static System.Guid _serviceId = Microsoft.XLANGs.Core.HashHelper.HashServiceType(typeof(WcfMultiplierServiceClient));
        private static volatile System.Guid[] _activationSubIds;

        private static new object _lockIdentity = new object();

        public static System.Guid UUID { get { return _serviceId; } }
        public override System.Guid ServiceId { get { return UUID; } }

        protected override System.Guid[] ActivationSubGuids
        {
            get { return _activationSubIds; }
            set { _activationSubIds = value; }
        }

        protected override object StaleStateLock
        {
            get { return _lockIdentity; }
        }

        protected override bool HasActivation { get { return true; } }

        internal bool IsExeced = false;

        static WcfMultiplierServiceClient()
        {
            Microsoft.BizTalk.XLANGs.BTXEngine.BTXService.CacheStaticState( _serviceId );
        }

        private void ConstructorHelper()
        {
            _segments = new Microsoft.XLANGs.Core.Segment[] {
                new Microsoft.XLANGs.Core.Segment( new Microsoft.XLANGs.Core.Segment.SegmentCode(this.segment0), 0, 0, 0),
                new Microsoft.XLANGs.Core.Segment( new Microsoft.XLANGs.Core.Segment.SegmentCode(this.segment1), 1, 1, 1)
            };

            _Locks = 0;
            _rootContext = new __WcfMultiplierServiceClient_root_0(this);
            _stateMgrs = new Microsoft.XLANGs.Core.IStateManager[2];
            _stateMgrs[0] = _rootContext;
            FinalConstruct();
        }

        public WcfMultiplierServiceClient(System.Guid instanceId, Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession session, Microsoft.BizTalk.XLANGs.BTXEngine.BTXEvents tracker)
            : base(instanceId, session, "WcfMultiplierServiceClient", tracker)
        {
            ConstructorHelper();
        }

        public WcfMultiplierServiceClient(int callIndex, System.Guid instanceId, Microsoft.BizTalk.XLANGs.BTXEngine.BTXService parent)
            : base(callIndex, instanceId, parent, "WcfMultiplierServiceClient")
        {
            ConstructorHelper();
        }

        private const string _symInfo = @"
<XsymFile>
<ProcessFlow xmlns:om='http://schemas.microsoft.com/BizTalk/2003/DesignerData'>      <shapeType>RootShape</shapeType>      <ShapeID>5a3219ae-5e63-4ea3-9c1b-85a6b1902113</ShapeID>      
<children>                          
<ShapeInfo>      <shapeType>ReceiveShape</shapeType>      <ShapeID>4e04b691-4ccf-4d4c-bde1-2e9c01f0f425</ShapeID>      <ParentLink>ServiceBody_Statement</ParentLink>                <shapeText>Receive_1</shapeText>                  
<children>                </children>
  </ShapeInfo>
                            
<ShapeInfo>      <shapeType>ConstructShape</shapeType>      <ShapeID>e02d2e2c-e971-49be-be66-de8c91ce9377</ShapeID>      <ParentLink>ServiceBody_Statement</ParentLink>                <shapeText>ConstructMessage_1</shapeText>                  
<children>                          
<ShapeInfo>      <shapeType>TransformShape</shapeType>      <ShapeID>725c66a4-0b5b-4eb9-aadc-d0e9cb5c5b7c</ShapeID>      <ParentLink>ComplexStatement_Statement</ParentLink>                <shapeText>Transform_1</shapeText>                  
<children>                          
<ShapeInfo>      <shapeType>MessagePartRefShape</shapeType>      <ShapeID>a68aacfe-d635-4552-8159-87b60ff74a57</ShapeID>      <ParentLink>Transform_InputMessagePartRef</ParentLink>                <shapeText>MessagePartReference_1</shapeText>                  
<children>                </children>
  </ShapeInfo>
                            
<ShapeInfo>      <shapeType>MessagePartRefShape</shapeType>      <ShapeID>89bd4c9a-991f-4f94-bdb8-159785ee75fe</ShapeID>      <ParentLink>Transform_OutputMessagePartRef</ParentLink>                <shapeText>MessagePartReference_2</shapeText>                  
<children>                </children>
  </ShapeInfo>
                  </children>
  </ShapeInfo>
                            
<ShapeInfo>      <shapeType>MessageRefShape</shapeType>      <ShapeID>6a720cfd-6761-4af5-9a6e-37cd2b5cca6a</ShapeID>      <ParentLink>Construct_MessageRef</ParentLink>                  
<children>                </children>
  </ShapeInfo>
                  </children>
  </ShapeInfo>
                            
<ShapeInfo>      <shapeType>SendShape</shapeType>      <ShapeID>b0d6d25d-f7f7-4e8f-b402-83a515c0e1b1</ShapeID>      <ParentLink>ServiceBody_Statement</ParentLink>                <shapeText>Send_1</shapeText>                  
<children>                </children>
  </ShapeInfo>
                            
<ShapeInfo>      <shapeType>ReceiveShape</shapeType>      <ShapeID>a69f71e6-5b5c-4b3f-b994-ddf9a7b96649</ShapeID>      <ParentLink>ServiceBody_Statement</ParentLink>                <shapeText>Receive_2</shapeText>                  
<children>                </children>
  </ShapeInfo>
                            
<ShapeInfo>      <shapeType>ConstructShape</shapeType>      <ShapeID>328459ac-0a29-451f-a927-3d7c4ff0eed3</ShapeID>      <ParentLink>ServiceBody_Statement</ParentLink>                <shapeText>ConstructMessage_2</shapeText>                  
<children>                          
<ShapeInfo>      <shapeType>TransformShape</shapeType>      <ShapeID>914234ef-454b-4c11-9372-fbcf76de78cd</ShapeID>      <ParentLink>ComplexStatement_Statement</ParentLink>                <shapeText>Transform_2</shapeText>                  
<children>                          
<ShapeInfo>      <shapeType>MessagePartRefShape</shapeType>      <ShapeID>2a391cea-eafc-4ea5-9df5-675edb6597b2</ShapeID>      <ParentLink>Transform_InputMessagePartRef</ParentLink>                <shapeText>MessagePartReference_3</shapeText>                  
<children>                </children>
  </ShapeInfo>
                            
<ShapeInfo>      <shapeType>MessagePartRefShape</shapeType>      <ShapeID>cb009138-f6c8-4548-9915-82d3c4fa10ec</ShapeID>      <ParentLink>Transform_OutputMessagePartRef</ParentLink>                <shapeText>MessagePartReference_4</shapeText>                  
<children>                </children>
  </ShapeInfo>
                  </children>
  </ShapeInfo>
                            
<ShapeInfo>      <shapeType>MessageRefShape</shapeType>      <ShapeID>08b5ef62-f01c-4f89-a516-12677be90f9b</ShapeID>      <ParentLink>Construct_MessageRef</ParentLink>                  
<children>                </children>
  </ShapeInfo>
                  </children>
  </ShapeInfo>
                            
<ShapeInfo>      <shapeType>SendShape</shapeType>      <ShapeID>6f4027e8-3c11-4071-8e08-6e292ee48fea</ShapeID>      <ParentLink>ServiceBody_Statement</ParentLink>                <shapeText>Send_2</shapeText>                  
<children>                </children>
  </ShapeInfo>
                  </children>
  </ProcessFlow>
<Metadata>

<TrkMetadata>
<ActionName>'WcfMultiplierServiceClient'</ActionName><IsAtomic>0</IsAtomic><Line>316</Line><Position>14</Position><ShapeID>'e211a116-cb8b-44e7-a052-0de295aa0001'</ShapeID>
</TrkMetadata>

<TrkMetadata>
<Line>329</Line><Position>22</Position><ShapeID>'4e04b691-4ccf-4d4c-bde1-2e9c01f0f425'</ShapeID>
<Messages>
	<MsgInfo><name>Message_MultiRequest</name><part>part</part><schema>BTSPracCourse.Orchestrations.Processor.MultiplyRequestSchema</schema><direction>Out</direction></MsgInfo>
</Messages>
</TrkMetadata>

<TrkMetadata>
<Line>331</Line><Position>13</Position><ShapeID>'e02d2e2c-e971-49be-be66-de8c91ce9377'</ShapeID>
<Messages>
	<MsgInfo><name>Message_WCFRequest</name><part>parameters</part><schema>BTSPracCourse.Orchestrations.Processor.WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming+Multiply</schema><direction>Out</direction></MsgInfo>
	<MsgInfo><name>Message_MultiRequest</name><part>part</part><schema>BTSPracCourse.Orchestrations.Processor.MultiplyRequestSchema</schema><direction>In</direction></MsgInfo>
</Messages>
</TrkMetadata>

<TrkMetadata>
<Line>337</Line><Position>13</Position><ShapeID>'b0d6d25d-f7f7-4e8f-b402-83a515c0e1b1'</ShapeID>
<Messages>
	<MsgInfo><name>Message_WCFRequest</name><part>parameters</part><schema>BTSPracCourse.Orchestrations.Processor.WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming+Multiply</schema><direction>Out</direction></MsgInfo>
</Messages>
</TrkMetadata>

<TrkMetadata>
<Line>339</Line><Position>13</Position><ShapeID>'a69f71e6-5b5c-4b3f-b994-ddf9a7b96649'</ShapeID>
<Messages>
	<MsgInfo><name>Message_WCFResponse</name><part>parameters</part><schema>BTSPracCourse.Orchestrations.Processor.WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming+MultiplyResponse</schema><direction>Out</direction></MsgInfo>
</Messages>
</TrkMetadata>

<TrkMetadata>
<Line>341</Line><Position>13</Position><ShapeID>'328459ac-0a29-451f-a927-3d7c4ff0eed3'</ShapeID>
<Messages>
	<MsgInfo><name>Message_Response</name><part>part</part><schema>BTSPracCourse.Orchestrations.Processor.ResponseSchema</schema><direction>Out</direction></MsgInfo>
	<MsgInfo><name>Message_WCFResponse</name><part>parameters</part><schema>BTSPracCourse.Orchestrations.Processor.WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming+MultiplyResponse</schema><direction>In</direction></MsgInfo>
</Messages>
</TrkMetadata>

<TrkMetadata>
<Line>347</Line><Position>13</Position><ShapeID>'6f4027e8-3c11-4071-8e08-6e292ee48fea'</ShapeID>
<Messages>
	<MsgInfo><name>Message_Response</name><part>part</part><schema>BTSPracCourse.Orchestrations.Processor.ResponseSchema</schema><direction>Out</direction></MsgInfo>
</Messages>
</TrkMetadata>
</Metadata>
</XsymFile>";

        public override string odXml { get { return _symODXML; } }

        private const string _symODXML = @"
<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<om:MetaModel MajorVersion='1' MinorVersion='3' Core='2b131234-7959-458d-834f-2dc0769ce683' ScheduleModel='66366196-361d-448d-976f-cab5e87496d2' xmlns:om='http://schemas.microsoft.com/BizTalk/2003/DesignerData'>
    <om:Element Type='Module' OID='0134a64d-85f3-4181-b175-18d296e1d5ef' LowerBound='1.1' HigherBound='69.1'>
        <om:Property Name='ReportToAnalyst' Value='True' />
        <om:Property Name='Name' Value='BTSPracCourse.Orchestrations.Processor' />
        <om:Property Name='Signal' Value='False' />
        <om:Element Type='PortType' OID='388f3704-7c53-4260-9755-24e1ace5989b' ParentLink='Module_PortType' LowerBound='12.1' HigherBound='19.1'>
            <om:Property Name='Synchronous' Value='True' />
            <om:Property Name='TypeModifier' Value='Internal' />
            <om:Property Name='ReportToAnalyst' Value='True' />
            <om:Property Name='AnalystComments' Value='&lt;wsdl:portType name=&quot;IWcfMultiplierService&quot;/&gt;&#xD;&#xA;' />
            <om:Property Name='Name' Value='IWcfMultiplierService' />
            <om:Property Name='Signal' Value='False' />
            <om:Element Type='OperationDeclaration' OID='9cc89532-459b-4ef2-b0ef-9e1fd74b0155' ParentLink='PortType_OperationDeclaration' LowerBound='14.1' HigherBound='18.1'>
                <om:Property Name='OperationType' Value='RequestResponse' />
                <om:Property Name='ReportToAnalyst' Value='True' />
                <om:Property Name='AnalystComments' Value='&lt;wsdl:operation name=&quot;Multiply&quot;/&gt;&#xD;&#xA;' />
                <om:Property Name='Name' Value='Multiply' />
                <om:Property Name='Signal' Value='False' />
                <om:Element Type='MessageRef' OID='87f0e06f-2972-4113-9dd0-8df66903d9d2' ParentLink='OperationDeclaration_RequestMessageRef' LowerBound='16.13' HigherBound='16.56'>
                    <om:Property Name='Ref' Value='BTSPracCourse.Orchestrations.Processor.IWcfMultiplierService_Multiply_InputMessage' />
                    <om:Property Name='ReportToAnalyst' Value='True' />
                    <om:Property Name='AnalystComments' Value='&lt;wsdl:input message=&quot;http://www.MoustafaRefaat.com/Orchestrations.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming:IWcfMultiplierService_Multiply_InputMessage&quot;/&gt;&#xD;&#xA;Action=&quot;http://www.MoustafaRefaat.com/Orchestrations.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming/IWcfMultiplierService/Multiply&quot;&#xD;&#xA;' />
                    <om:Property Name='Name' Value='Request' />
                    <om:Property Name='Signal' Value='False' />
                </om:Element>
                <om:Element Type='MessageRef' OID='185aefd2-a484-4782-aa82-039fbc0eafc5' ParentLink='OperationDeclaration_ResponseMessageRef' LowerBound='16.58' HigherBound='16.102'>
                    <om:Property Name='Ref' Value='BTSPracCourse.Orchestrations.Processor.IWcfMultiplierService_Multiply_OutputMessage' />
                    <om:Property Name='ReportToAnalyst' Value='True' />
                    <om:Property Name='AnalystComments' Value='&lt;wsdl:output message=&quot;http://www.MoustafaRefaat.com/Orchestrations.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming:IWcfMultiplierService_Multiply_OutputMessage&quot;/&gt;&#xD;&#xA;Action=&quot;http://www.MoustafaRefaat.com/Orchestrations.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming/IWcfMultiplierService/MultiplyResponse&quot;&#xD;&#xA;' />
                    <om:Property Name='Name' Value='Response' />
                    <om:Property Name='Signal' Value='False' />
                </om:Element>
            </om:Element>
        </om:Element>
        <om:Element Type='PortType' OID='c8c6f1eb-3390-452c-abed-846ef8379755' ParentLink='Module_PortType' LowerBound='19.1' HigherBound='26.1'>
            <om:Property Name='Synchronous' Value='False' />
            <om:Property Name='TypeModifier' Value='Internal' />
            <om:Property Name='ReportToAnalyst' Value='True' />
            <om:Property Name='Name' Value='PortType_MultiplyRequest' />
            <om:Property Name='Signal' Value='False' />
            <om:Element Type='OperationDeclaration' OID='c8efaa78-e241-4022-b94b-18f48fd7ef82' ParentLink='PortType_OperationDeclaration' LowerBound='21.1' HigherBound='25.1'>
                <om:Property Name='OperationType' Value='OneWay' />
                <om:Property Name='ReportToAnalyst' Value='True' />
                <om:Property Name='Name' Value='Operation_1' />
                <om:Property Name='Signal' Value='False' />
                <om:Element Type='MessageRef' OID='78ffb422-5e02-4316-a426-c2ab572053b0' ParentLink='OperationDeclaration_RequestMessageRef' LowerBound='23.13' HigherBound='23.34'>
                    <om:Property Name='Ref' Value='BTSPracCourse.Orchestrations.Processor.MultiplyRequestSchema' />
                    <om:Property Name='ReportToAnalyst' Value='True' />
                    <om:Property Name='Name' Value='Request' />
                    <om:Property Name='Signal' Value='False' />
                </om:Element>
            </om:Element>
        </om:Element>
        <om:Element Type='PortType' OID='97a23243-0b6c-4172-bbb0-1b497238e1b2' ParentLink='Module_PortType' LowerBound='26.1' HigherBound='33.1'>
            <om:Property Name='Synchronous' Value='True' />
            <om:Property Name='TypeModifier' Value='Public' />
            <om:Property Name='ReportToAnalyst' Value='True' />
            <om:Property Name='Name' Value='PortType_BTSMultiply' />
            <om:Property Name='Signal' Value='False' />
            <om:Element Type='OperationDeclaration' OID='a40a7810-b2b2-4bbd-bc46-d54767ea5dda' ParentLink='PortType_OperationDeclaration' LowerBound='28.1' HigherBound='32.1'>
                <om:Property Name='OperationType' Value='RequestResponse' />
                <om:Property Name='ReportToAnalyst' Value='True' />
                <om:Property Name='Name' Value='Operation_1' />
                <om:Property Name='Signal' Value='False' />
                <om:Element Type='MessageRef' OID='5d30f76d-44cc-4abb-988d-1af4b6427ec0' ParentLink='OperationDeclaration_RequestMessageRef' LowerBound='30.13' HigherBound='30.34'>
                    <om:Property Name='Ref' Value='BTSPracCourse.Orchestrations.Processor.MultiplyRequestSchema' />
                    <om:Property Name='ReportToAnalyst' Value='True' />
                    <om:Property Name='Name' Value='Request' />
                    <om:Property Name='Signal' Value='False' />
                </om:Element>
                <om:Element Type='MessageRef' OID='8c1bf9d7-1a33-4f96-9305-aae007d7642e' ParentLink='OperationDeclaration_ResponseMessageRef' LowerBound='30.36' HigherBound='30.50'>
                    <om:Property Name='Ref' Value='BTSPracCourse.Orchestrations.Processor.ResponseSchema' />
                    <om:Property Name='ReportToAnalyst' Value='True' />
                    <om:Property Name='Name' Value='Response' />
                    <om:Property Name='Signal' Value='False' />
                </om:Element>
            </om:Element>
        </om:Element>
        <om:Element Type='MultipartMessageType' OID='10036e08-28db-4fec-82ec-f0b7abe4c4ad' ParentLink='Module_MessageType' LowerBound='4.1' HigherBound='8.1'>
            <om:Property Name='TypeModifier' Value='Internal' />
            <om:Property Name='ReportToAnalyst' Value='True' />
            <om:Property Name='AnalystComments' Value='&lt;wsdl:message name=&quot;IWcfMultiplierService_Multiply_InputMessage&quot;/&gt;&#xD;&#xA;' />
            <om:Property Name='Name' Value='IWcfMultiplierService_Multiply_InputMessage' />
            <om:Property Name='Signal' Value='False' />
            <om:Element Type='PartDeclaration' OID='4cef1b4d-3289-4ea3-bbb0-40adbe15f7d9' ParentLink='MultipartMessageType_PartDeclaration' LowerBound='6.1' HigherBound='7.1'>
                <om:Property Name='ClassName' Value='BTSPracCourse.Orchestrations.Processor.WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming.Multiply' />
                <om:Property Name='IsBodyPart' Value='True' />
                <om:Property Name='ReportToAnalyst' Value='True' />
                <om:Property Name='AnalystComments' Value='&lt;wsdl:part name=&quot;parameters&quot;/&gt;&#xD;&#xA;' />
                <om:Property Name='Name' Value='parameters' />
                <om:Property Name='Signal' Value='False' />
            </om:Element>
        </om:Element>
        <om:Element Type='MultipartMessageType' OID='0fd230da-0b7d-4b34-891f-fc89489118ce' ParentLink='Module_MessageType' LowerBound='8.1' HigherBound='12.1'>
            <om:Property Name='TypeModifier' Value='Internal' />
            <om:Property Name='ReportToAnalyst' Value='True' />
            <om:Property Name='AnalystComments' Value='&lt;wsdl:message name=&quot;IWcfMultiplierService_Multiply_OutputMessage&quot;/&gt;&#xD;&#xA;' />
            <om:Property Name='Name' Value='IWcfMultiplierService_Multiply_OutputMessage' />
            <om:Property Name='Signal' Value='False' />
            <om:Element Type='PartDeclaration' OID='8a9af7dc-83fe-4516-b3a5-6f9f9e3e17d6' ParentLink='MultipartMessageType_PartDeclaration' LowerBound='10.1' HigherBound='11.1'>
                <om:Property Name='ClassName' Value='BTSPracCourse.Orchestrations.Processor.WcfMultiplierService_ations_WCF_BasicHttpSendAdapter_BasicHttpWcfServiceConsuming.MultiplyResponse' />
                <om:Property Name='IsBodyPart' Value='True' />
                <om:Property Name='ReportToAnalyst' Value='True' />
                <om:Property Name='AnalystComments' Value='&lt;wsdl:part name=&quot;parameters&quot;/&gt;&#xD;&#xA;' />
                <om:Property Name='Name' Value='parameters' />
                <om:Property Name='Signal' Value='False' />
            </om:Element>
        </om:Element>
        <om:Element Type='ServiceDeclaration' OID='370a092c-4496-442d-99f9-05c122be1649' ParentLink='Module_ServiceDeclaration' LowerBound='33.1' HigherBound='68.1'>
            <om:Property Name='InitializedTransactionType' Value='False' />
            <om:Property Name='IsInvokable' Value='False' />
            <om:Property Name='TypeModifier' Value='Internal' />
            <om:Property Name='ReportToAnalyst' Value='True' />
            <om:Property Name='AnalystComments' Value='&lt;wsdl:service name=&quot;WcfMultiplierService&quot;/&gt;&#xD;&#xA;' />
            <om:Property Name='Name' Value='WcfMultiplierServiceClient' />
            <om:Property Name='Signal' Value='False' />
            <om:Element Type='ServiceBody' OID='5a3219ae-5e63-4ea3-9c1b-85a6b1902113' ParentLink='ServiceDeclaration_ServiceBody'>
                <om:Property Name='Signal' Value='False' />
                <om:Element Type='Receive' OID='4e04b691-4ccf-4d4c-bde1-2e9c01f0f425' ParentLink='ServiceBody_Statement' LowerBound='46.1' HigherBound='48.1'>
                    <om:Property Name='Activate' Value='True' />
                    <om:Property Name='PortName' Value='Port_BTSMultiplyRequest' />
                    <om:Property Name='MessageName' Value='Message_MultiRequest' />
                    <om:Property Name='OperationName' Value='Operation_1' />
                    <om:Property Name='OperationMessageName' Value='Request' />
                    <om:Property Name='ReportToAnalyst' Value='True' />
                    <om:Property Name='Name' Value='Receive_1' />
                    <om:Property Name='Signal' Value='True' />
                </om:Element>
                <om:Element Type='Construct' OID='e02d2e2c-e971-49be-be66-de8c91ce9377' ParentLink='ServiceBody_Statement' LowerBound='48.1' HigherBound='54.1'>
                    <om:Property Name='ReportToAnalyst' Value='True' />
                    <om:Property Name='Name' Value='ConstructMessage_1' />
                    <om:Property Name='Signal' Value='False' />
                    <om:Element Type='Transform' OID='725c66a4-0b5b-4eb9-aadc-d0e9cb5c5b7c' ParentLink='ComplexStatement_Statement' LowerBound='51.1' HigherBound='53.1'>
                        <om:Property Name='ClassName' Value='BTSPracCourse.Orchestrations.Processor.Transform_RequestToWCF' />
                        <om:Property Name='ReportToAnalyst' Value='True' />
                        <om:Property Name='Name' Value='Transform_1' />
                        <om:Property Name='Signal' Value='True' />
                        <om:Element Type='MessagePartRef' OID='a68aacfe-d635-4552-8159-87b60ff74a57' ParentLink='Transform_InputMessagePartRef' LowerBound='52.124' HigherBound='52.144'>
                            <om:Property Name='MessageRef' Value='Message_MultiRequest' />
                            <om:Property Name='ReportToAnalyst' Value='True' />
                            <om:Property Name='Name' Value='MessagePartReference_1' />
                            <om:Property Name='Signal' Value='False' />
                        </om:Element>
                        <om:Element Type='MessagePartRef' OID='89bd4c9a-991f-4f94-bdb8-159785ee75fe' ParentLink='Transform_OutputMessagePartRef' LowerBound='52.28' HigherBound='52.57'>
                            <om:Property Name='MessageRef' Value='Message_WCFRequest' />
                            <om:Property Name='PartRef' Value='parameters' />
                            <om:Property Name='ReportToAnalyst' Value='True' />
                            <om:Property Name='Name' Value='MessagePartReference_2' />
                            <om:Property Name='Signal' Value='False' />
                        </om:Element>
                    </om:Element>
                    <om:Element Type='MessageRef' OID='6a720cfd-6761-4af5-9a6e-37cd2b5cca6a' ParentLink='Construct_MessageRef' LowerBound='49.23' HigherBound='49.41'>
                        <om:Property Name='Ref' Value='Message_WCFRequest' />
                        <om:Property Name='ReportToAnalyst' Value='True' />
                        <om:Property Name='Signal' Value='False' />
                    </om:Element>
                </om:Element>
                <om:Element Type='Send' OID='b0d6d25d-f7f7-4e8f-b402-83a515c0e1b1' ParentLink='ServiceBody_Statement' LowerBound='54.1' HigherBound='56.1'>
                    <om:Property Name='PortName' Value='Port_WCFService' />
                    <om:Property Name='MessageName' Value='Message_WCFRequest' />
                    <om:Property Name='OperationName' Value='Multiply' />
                    <om:Property Name='OperationMessageName' Value='Request' />
                    <om:Property Name='ReportToAnalyst' Value='True' />
                    <om:Property Name='Name' Value='Send_1' />
                    <om:Property Name='Signal' Value='True' />
                </om:Element>
                <om:Element Type='Receive' OID='a69f71e6-5b5c-4b3f-b994-ddf9a7b96649' ParentLink='ServiceBody_Statement' LowerBound='56.1' HigherBound='58.1'>
                    <om:Property Name='Activate' Value='False' />
                    <om:Property Name='PortName' Value='Port_WCFService' />
                    <om:Property Name='MessageName' Value='Message_WCFResponse' />
                    <om:Property Name='OperationName' Value='Multiply' />
                    <om:Property Name='OperationMessageName' Value='Response' />
                    <om:Property Name='ReportToAnalyst' Value='True' />
                    <om:Property Name='Name' Value='Receive_2' />
                    <om:Property Name='Signal' Value='True' />
                </om:Element>
                <om:Element Type='Construct' OID='328459ac-0a29-451f-a927-3d7c4ff0eed3' ParentLink='ServiceBody_Statement' LowerBound='58.1' HigherBound='64.1'>
                    <om:Property Name='ReportToAnalyst' Value='True' />
                    <om:Property Name='Name' Value='ConstructMessage_2' />
                    <om:Property Name='Signal' Value='False' />
                    <om:Element Type='Transform' OID='914234ef-454b-4c11-9372-fbcf76de78cd' ParentLink='ComplexStatement_Statement' LowerBound='61.1' HigherBound='63.1'>
                        <om:Property Name='ClassName' Value='BTSPracCourse.Orchestrations.Processor.Transform_2' />
                        <om:Property Name='ReportToAnalyst' Value='True' />
                        <om:Property Name='Name' Value='Transform_2' />
                        <om:Property Name='Signal' Value='True' />
                        <om:Element Type='MessagePartRef' OID='2a391cea-eafc-4ea5-9df5-675edb6597b2' ParentLink='Transform_InputMessagePartRef' LowerBound='62.100' HigherBound='62.130'>
                            <om:Property Name='MessageRef' Value='Message_WCFResponse' />
                            <om:Property Name='PartRef' Value='parameters' />
                            <om:Property Name='ReportToAnalyst' Value='True' />
                            <om:Property Name='Name' Value='MessagePartReference_3' />
                            <om:Property Name='Signal' Value='False' />
                        </om:Element>
                        <om:Element Type='MessagePartRef' OID='cb009138-f6c8-4548-9915-82d3c4fa10ec' ParentLink='Transform_OutputMessagePartRef' LowerBound='62.28' HigherBound='62.44'>
                            <om:Property Name='MessageRef' Value='Message_Response' />
                            <om:Property Name='ReportToAnalyst' Value='True' />
                            <om:Property Name='Name' Value='MessagePartReference_4' />
                            <om:Property Name='Signal' Value='False' />
                        </om:Element>
                    </om:Element>
                    <om:Element Type='MessageRef' OID='08b5ef62-f01c-4f89-a516-12677be90f9b' ParentLink='Construct_MessageRef' LowerBound='59.23' HigherBound='59.39'>
                        <om:Property Name='Ref' Value='Message_Response' />
                        <om:Property Name='ReportToAnalyst' Value='True' />
                        <om:Property Name='Signal' Value='False' />
                    </om:Element>
                </om:Element>
                <om:Element Type='Send' OID='6f4027e8-3c11-4071-8e08-6e292ee48fea' ParentLink='ServiceBody_Statement' LowerBound='64.1' HigherBound='66.1'>
                    <om:Property Name='PortName' Value='Port_BTSMultiplyRequest' />
                    <om:Property Name='MessageName' Value='Message_Response' />
                    <om:Property Name='OperationName' Value='Operation_1' />
                    <om:Property Name='OperationMessageName' Value='Response' />
                    <om:Property Name='ReportToAnalyst' Value='True' />
                    <om:Property Name='Name' Value='Send_2' />
                    <om:Property Name='Signal' Value='True' />
                </om:Element>
            </om:Element>
            <om:Element Type='PortDeclaration' OID='e94597fb-2c1b-4694-8cac-184cf1268271' ParentLink='ServiceDeclaration_PortDeclaration' LowerBound='36.1' HigherBound='38.1'>
                <om:Property Name='PortModifier' Value='Uses' />
                <om:Property Name='Orientation' Value='Right' />
                <om:Property Name='PortIndex' Value='18' />
                <om:Property Name='IsWebPort' Value='False' />
                <om:Property Name='OrderedDelivery' Value='False' />
                <om:Property Name='DeliveryNotification' Value='None' />
                <om:Property Name='Type' Value='BTSPracCourse.Orchestrations.Processor.IWcfMultiplierService' />
                <om:Property Name='ParamDirection' Value='In' />
                <om:Property Name='ReportToAnalyst' Value='True' />
                <om:Property Name='Name' Value='Port_WCFService' />
                <om:Property Name='Signal' Value='False' />
                <om:Element Type='LogicalBindingAttribute' OID='f78b26cc-cfee-4b9e-813a-3422aace0308' ParentLink='PortDeclaration_CLRAttribute' LowerBound='36.1' HigherBound='37.1'>
                    <om:Property Name='Signal' Value='False' />
                </om:Element>
            </om:Element>
            <om:Element Type='PortDeclaration' OID='76fc1113-e3cc-4df5-8297-6b1345616018' ParentLink='ServiceDeclaration_PortDeclaration' LowerBound='38.1' HigherBound='40.1'>
                <om:Property Name='PortModifier' Value='Implements' />
                <om:Property Name='Orientation' Value='Left' />
                <om:Property Name='PortIndex' Value='3' />
                <om:Property Name='IsWebPort' Value='False' />
                <om:Property Name='OrderedDelivery' Value='False' />
                <om:Property Name='DeliveryNotification' Value='None' />
                <om:Property Name='Type' Value='BTSPracCourse.Orchestrations.Processor.PortType_BTSMultiply' />
                <om:Property Name='ParamDirection' Value='In' />
                <om:Property Name='ReportToAnalyst' Value='True' />
                <om:Property Name='Name' Value='Port_BTSMultiplyRequest' />
                <om:Property Name='Signal' Value='False' />
                <om:Element Type='LogicalBindingAttribute' OID='e751a7ad-50ac-4fc6-8092-432cbd04b070' ParentLink='PortDeclaration_CLRAttribute' LowerBound='38.1' HigherBound='39.1'>
                    <om:Property Name='Signal' Value='False' />
                </om:Element>
            </om:Element>
            <om:Element Type='MessageDeclaration' OID='0d88f3ff-514f-4e56-8bc0-64623a030104' ParentLink='ServiceDeclaration_MessageDeclaration' LowerBound='40.1' HigherBound='41.1'>
                <om:Property Name='Type' Value='BTSPracCourse.Orchestrations.Processor.MultiplyRequestSchema' />
                <om:Property Name='ParamDirection' Value='In' />
                <om:Property Name='ReportToAnalyst' Value='True' />
                <om:Property Name='Name' Value='Message_MultiRequest' />
                <om:Property Name='Signal' Value='True' />
            </om:Element>
            <om:Element Type='MessageDeclaration' OID='6404dfef-f160-41b9-a446-17073cb9b40c' ParentLink='ServiceDeclaration_MessageDeclaration' LowerBound='41.1' HigherBound='42.1'>
                <om:Property Name='Type' Value='BTSPracCourse.Orchestrations.Processor.IWcfMultiplierService_Multiply_InputMessage' />
                <om:Property Name='ParamDirection' Value='In' />
                <om:Property Name='ReportToAnalyst' Value='True' />
                <om:Property Name='Name' Value='Message_WCFRequest' />
                <om:Property Name='Signal' Value='True' />
            </om:Element>
            <om:Element Type='MessageDeclaration' OID='eea0ebe1-84b3-431d-ab76-7c3df7c6ecc0' ParentLink='ServiceDeclaration_MessageDeclaration' LowerBound='42.1' HigherBound='43.1'>
                <om:Property Name='Type' Value='BTSPracCourse.Orchestrations.Processor.IWcfMultiplierService_Multiply_OutputMessage' />
                <om:Property Name='ParamDirection' Value='In' />
                <om:Property Name='ReportToAnalyst' Value='True' />
                <om:Property Name='Name' Value='Message_WCFResponse' />
                <om:Property Name='Signal' Value='True' />
            </om:Element>
            <om:Element Type='MessageDeclaration' OID='474f4b52-cdf9-4541-83dd-118570117c03' ParentLink='ServiceDeclaration_MessageDeclaration' LowerBound='43.1' HigherBound='44.1'>
                <om:Property Name='Type' Value='BTSPracCourse.Orchestrations.Processor.ResponseSchema' />
                <om:Property Name='ParamDirection' Value='In' />
                <om:Property Name='ReportToAnalyst' Value='True' />
                <om:Property Name='Name' Value='Message_Response' />
                <om:Property Name='Signal' Value='True' />
            </om:Element>
        </om:Element>
    </om:Element>
</om:MetaModel>
";

        [System.SerializableAttribute]
        public class __WcfMultiplierServiceClient_root_0 : Microsoft.XLANGs.Core.ServiceContext
        {
            public __WcfMultiplierServiceClient_root_0(Microsoft.XLANGs.Core.Service svc)
                : base(svc, "WcfMultiplierServiceClient")
            {
            }

            public override int Index { get { return 0; } }

            public override Microsoft.XLANGs.Core.Segment InitialSegment
            {
                get { return _service._segments[0]; }
            }
            public override Microsoft.XLANGs.Core.Segment FinalSegment
            {
                get { return _service._segments[0]; }
            }

            public override int CompensationSegment { get { return -1; } }
            public override bool OnError()
            {
                Finally();
                return false;
            }

            public override void Finally()
            {
                WcfMultiplierServiceClient __svc__ = (WcfMultiplierServiceClient)_service;
                __WcfMultiplierServiceClient_root_0 __ctx0__ = (__WcfMultiplierServiceClient_root_0)(__svc__._stateMgrs[0]);

                if (__svc__.Port_WCFService != null)
                {
                    __svc__.Port_WCFService.Close(this, null);
                    __svc__.Port_WCFService = null;
                }
                if (__svc__.Port_BTSMultiplyRequest != null)
                {
                    __svc__.Port_BTSMultiplyRequest.Close(this, null);
                    __svc__.Port_BTSMultiplyRequest = null;
                }
                base.Finally();
            }

            internal Microsoft.XLANGs.Core.SubscriptionWrapper __subWrapper0;
            internal Microsoft.XLANGs.Core.SubscriptionWrapper __subWrapper1;
        }


        [System.SerializableAttribute]
        public class __WcfMultiplierServiceClient_1 : Microsoft.XLANGs.Core.ExceptionHandlingContext
        {
            public __WcfMultiplierServiceClient_1(Microsoft.XLANGs.Core.Service svc)
                : base(svc, "WcfMultiplierServiceClient")
            {
            }

            public override int Index { get { return 1; } }

            public override bool CombineParentCommit { get { return true; } }

            public override Microsoft.XLANGs.Core.Segment InitialSegment
            {
                get { return _service._segments[1]; }
            }
            public override Microsoft.XLANGs.Core.Segment FinalSegment
            {
                get { return _service._segments[1]; }
            }

            public override int CompensationSegment { get { return -1; } }
            public override bool OnError()
            {
                Finally();
                return false;
            }

            public override void Finally()
            {
                WcfMultiplierServiceClient __svc__ = (WcfMultiplierServiceClient)_service;
                __WcfMultiplierServiceClient_1 __ctx1__ = (__WcfMultiplierServiceClient_1)(__svc__._stateMgrs[1]);
                __WcfMultiplierServiceClient_root_0 __ctx0__ = (__WcfMultiplierServiceClient_root_0)(__svc__._stateMgrs[0]);

                if (__ctx0__ != null && __ctx0__.__subWrapper1 != null)
                {
                    __ctx0__.__subWrapper1.Destroy(__svc__, __ctx0__);
                    __ctx0__.__subWrapper1 = null;
                }
                if (__ctx1__ != null && __ctx1__.__Message_Response != null)
                {
                    __ctx1__.UnrefMessage(__ctx1__.__Message_Response);
                    __ctx1__.__Message_Response = null;
                }
                if (__ctx1__ != null && __ctx1__.__Message_WCFRequest != null)
                {
                    __ctx1__.UnrefMessage(__ctx1__.__Message_WCFRequest);
                    __ctx1__.__Message_WCFRequest = null;
                }
                if (__ctx1__ != null && __ctx1__.__Message_WCFResponse != null)
                {
                    __ctx1__.UnrefMessage(__ctx1__.__Message_WCFResponse);
                    __ctx1__.__Message_WCFResponse = null;
                }
                if (__ctx1__ != null && __ctx1__.__Message_MultiRequest != null)
                {
                    __ctx1__.UnrefMessage(__ctx1__.__Message_MultiRequest);
                    __ctx1__.__Message_MultiRequest = null;
                }
                base.Finally();
            }

            [Microsoft.XLANGs.Core.UserVariableAttribute("Message_MultiRequest")]
            public __messagetype_BTSPracCourse_Orchestrations_Processor_MultiplyRequestSchema __Message_MultiRequest;
            [Microsoft.XLANGs.Core.UserVariableAttribute("Message_WCFRequest")]
            internal IWcfMultiplierService_Multiply_InputMessage __Message_WCFRequest;
            [Microsoft.XLANGs.Core.UserVariableAttribute("Message_WCFResponse")]
            internal IWcfMultiplierService_Multiply_OutputMessage __Message_WCFResponse;
            [Microsoft.XLANGs.Core.UserVariableAttribute("Message_Response")]
            public __messagetype_BTSPracCourse_Orchestrations_Processor_ResponseSchema __Message_Response;
        }

        private static Microsoft.XLANGs.Core.CorrelationType[] _correlationTypes = null;
        public override Microsoft.XLANGs.Core.CorrelationType[] CorrelationTypes { get { return _correlationTypes; } }

        private static System.Guid[] _convoySetIds;

        public override System.Guid[] ConvoySetGuids
        {
            get { return _convoySetIds; }
            set { _convoySetIds = value; }
        }

        public static object[] StaticConvoySetInformation
        {
            get {
                return null;
            }
        }

        [Microsoft.XLANGs.BaseTypes.LogicalBindingAttribute()]
        [Microsoft.XLANGs.BaseTypes.PortAttribute(
            Microsoft.XLANGs.BaseTypes.EXLangSParameter.eImplements
        )]
        [Microsoft.XLANGs.Core.UserVariableAttribute("Port_BTSMultiplyRequest")]
        internal PortType_BTSMultiply Port_BTSMultiplyRequest;
        [Microsoft.XLANGs.BaseTypes.LogicalBindingAttribute()]
        [Microsoft.XLANGs.BaseTypes.PortAttribute(
            Microsoft.XLANGs.BaseTypes.EXLangSParameter.eUses
        )]
        [Microsoft.XLANGs.Core.UserVariableAttribute("Port_WCFService")]
        internal IWcfMultiplierService Port_WCFService;

        public static Microsoft.XLANGs.Core.PortInfo[] _portInfo = new Microsoft.XLANGs.Core.PortInfo[] {
            new Microsoft.XLANGs.Core.PortInfo(new Microsoft.XLANGs.Core.OperationInfo[] {PortType_BTSMultiply.Operation_1},
                                               typeof(WcfMultiplierServiceClient).GetField("Port_BTSMultiplyRequest", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance),
                                               Microsoft.XLANGs.BaseTypes.Polarity.implements,
                                               false,
                                               Microsoft.XLANGs.Core.HashHelper.HashPort(typeof(WcfMultiplierServiceClient), "Port_BTSMultiplyRequest"),
                                               null),
            new Microsoft.XLANGs.Core.PortInfo(new Microsoft.XLANGs.Core.OperationInfo[] {IWcfMultiplierService.Multiply},
                                               typeof(WcfMultiplierServiceClient).GetField("Port_WCFService", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance),
                                               Microsoft.XLANGs.BaseTypes.Polarity.uses,
                                               false,
                                               Microsoft.XLANGs.Core.HashHelper.HashPort(typeof(WcfMultiplierServiceClient), "Port_WCFService"),
                                               null)
        };

        public override Microsoft.XLANGs.Core.PortInfo[] PortInformation
        {
            get { return _portInfo; }
        }

        static public System.Collections.Hashtable PortsInformation
        {
            get
            {
                System.Collections.Hashtable h = new System.Collections.Hashtable();
                h[_portInfo[0].Name] = _portInfo[0];
                h[_portInfo[1].Name] = _portInfo[1];
                return h;
            }
        }

        public static System.Type[] InvokedServicesTypes
        {
            get
            {
                return new System.Type[] {
                    // type of each service invoked by this service
                };
            }
        }

        public static System.Type[] CalledServicesTypes
        {
            get
            {
                return new System.Type[] {
                };
            }
        }

        public static System.Type[] ExecedServicesTypes
        {
            get
            {
                return new System.Type[] {
                };
            }
        }

        public static object[] StaticSubscriptionsInformation {
            get {
                return new object[1]{
                     new object[5] { _portInfo[0], 0, null , -1, true }
                };
            }
        }

        public static Microsoft.XLANGs.RuntimeTypes.Location[] __eventLocations = new Microsoft.XLANGs.RuntimeTypes.Location[] {
            new Microsoft.XLANGs.RuntimeTypes.Location(0, "00000000-0000-0000-0000-000000000000", 1, true),
            new Microsoft.XLANGs.RuntimeTypes.Location(1, "4e04b691-4ccf-4d4c-bde1-2e9c01f0f425", 1, true),
            new Microsoft.XLANGs.RuntimeTypes.Location(2, "4e04b691-4ccf-4d4c-bde1-2e9c01f0f425", 1, false),
            new Microsoft.XLANGs.RuntimeTypes.Location(3, "e02d2e2c-e971-49be-be66-de8c91ce9377", 1, true),
            new Microsoft.XLANGs.RuntimeTypes.Location(4, "e02d2e2c-e971-49be-be66-de8c91ce9377", 1, false),
            new Microsoft.XLANGs.RuntimeTypes.Location(5, "b0d6d25d-f7f7-4e8f-b402-83a515c0e1b1", 1, true),
            new Microsoft.XLANGs.RuntimeTypes.Location(6, "b0d6d25d-f7f7-4e8f-b402-83a515c0e1b1", 1, false),
            new Microsoft.XLANGs.RuntimeTypes.Location(7, "a69f71e6-5b5c-4b3f-b994-ddf9a7b96649", 1, true),
            new Microsoft.XLANGs.RuntimeTypes.Location(8, "a69f71e6-5b5c-4b3f-b994-ddf9a7b96649", 1, false),
            new Microsoft.XLANGs.RuntimeTypes.Location(9, "328459ac-0a29-451f-a927-3d7c4ff0eed3", 1, true),
            new Microsoft.XLANGs.RuntimeTypes.Location(10, "328459ac-0a29-451f-a927-3d7c4ff0eed3", 1, false),
            new Microsoft.XLANGs.RuntimeTypes.Location(11, "6f4027e8-3c11-4071-8e08-6e292ee48fea", 1, true),
            new Microsoft.XLANGs.RuntimeTypes.Location(12, "6f4027e8-3c11-4071-8e08-6e292ee48fea", 1, false),
            new Microsoft.XLANGs.RuntimeTypes.Location(13, "00000000-0000-0000-0000-000000000000", 1, false)
        };

        public override Microsoft.XLANGs.RuntimeTypes.Location[] EventLocations
        {
            get { return __eventLocations; }
        }

        public static Microsoft.XLANGs.RuntimeTypes.EventData[] __eventData = new Microsoft.XLANGs.RuntimeTypes.EventData[] {
            new Microsoft.XLANGs.RuntimeTypes.EventData( Microsoft.XLANGs.RuntimeTypes.Operation.Start | Microsoft.XLANGs.RuntimeTypes.Operation.Body),
            new Microsoft.XLANGs.RuntimeTypes.EventData( Microsoft.XLANGs.RuntimeTypes.Operation.Start | Microsoft.XLANGs.RuntimeTypes.Operation.Receive),
            new Microsoft.XLANGs.RuntimeTypes.EventData( Microsoft.XLANGs.RuntimeTypes.Operation.Start | Microsoft.XLANGs.RuntimeTypes.Operation.Construct),
            new Microsoft.XLANGs.RuntimeTypes.EventData( Microsoft.XLANGs.RuntimeTypes.Operation.Start | Microsoft.XLANGs.RuntimeTypes.Operation.Send),
            new Microsoft.XLANGs.RuntimeTypes.EventData( Microsoft.XLANGs.RuntimeTypes.Operation.End | Microsoft.XLANGs.RuntimeTypes.Operation.Body)
        };

        public static int[] __progressLocation0 = new int[] { 0,0,0,13,13,};
        public static int[] __progressLocation1 = new int[] { 0,0,1,1,2,3,3,4,5,5,5,6,7,7,8,9,9,10,11,11,11,12,13,13,13,13,};

        public static int[][] __progressLocations = new int[2] [] {__progressLocation0,__progressLocation1};
        public override int[][] ProgressLocations {get {return __progressLocations;} }

        public Microsoft.XLANGs.Core.StopConditions segment0(Microsoft.XLANGs.Core.StopConditions stopOn)
        {
            Microsoft.XLANGs.Core.Segment __seg__ = _segments[0];
            Microsoft.XLANGs.Core.Context __ctx__ = (Microsoft.XLANGs.Core.Context)_stateMgrs[0];
            __WcfMultiplierServiceClient_1 __ctx1__ = (__WcfMultiplierServiceClient_1)_stateMgrs[1];
            __WcfMultiplierServiceClient_root_0 __ctx0__ = (__WcfMultiplierServiceClient_root_0)_stateMgrs[0];

            switch (__seg__.Progress)
            {
            case 0:
                Port_WCFService = new IWcfMultiplierService(1, this);
                Port_BTSMultiplyRequest = new PortType_BTSMultiply(0, this);
                __ctx__.PrologueCompleted = true;
                __ctx0__.__subWrapper0 = new Microsoft.XLANGs.Core.SubscriptionWrapper(ActivationSubGuids[0], Port_BTSMultiplyRequest, this);
                if ( !PostProgressInc( __seg__, __ctx__, 1 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                if ((stopOn & Microsoft.XLANGs.Core.StopConditions.Initialized) != 0)
                    return Microsoft.XLANGs.Core.StopConditions.Initialized;
                goto case 1;
            case 1:
                __ctx1__ = new __WcfMultiplierServiceClient_1(this);
                _stateMgrs[1] = __ctx1__;
                if ( !PostProgressInc( __seg__, __ctx__, 2 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                goto case 2;
            case 2:
                __ctx0__.StartContext(__seg__, __ctx1__);
                if ( !PostProgressInc( __seg__, __ctx__, 3 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                return Microsoft.XLANGs.Core.StopConditions.Blocked;
            case 3:
                if (!__ctx0__.CleanupAndPrepareToCommit(__seg__))
                    return Microsoft.XLANGs.Core.StopConditions.Blocked;
                if ( !PostProgressInc( __seg__, __ctx__, 4 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                goto case 4;
            case 4:
                __ctx1__.Finally();
                ServiceDone(__seg__, (Microsoft.XLANGs.Core.Context)_stateMgrs[0]);
                __ctx0__.OnCommit();
                break;
            }
            return Microsoft.XLANGs.Core.StopConditions.Completed;
        }

        public Microsoft.XLANGs.Core.StopConditions segment1(Microsoft.XLANGs.Core.StopConditions stopOn)
        {
            Microsoft.XLANGs.Core.Envelope __msgEnv__ = null;
            Microsoft.XLANGs.Core.Segment __seg__ = _segments[1];
            Microsoft.XLANGs.Core.Context __ctx__ = (Microsoft.XLANGs.Core.Context)_stateMgrs[1];
            __WcfMultiplierServiceClient_1 __ctx1__ = (__WcfMultiplierServiceClient_1)_stateMgrs[1];
            __WcfMultiplierServiceClient_root_0 __ctx0__ = (__WcfMultiplierServiceClient_root_0)_stateMgrs[0];

            switch (__seg__.Progress)
            {
            case 0:
                __ctx__.PrologueCompleted = true;
                if ( !PostProgressInc( __seg__, __ctx__, 1 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                goto case 1;
            case 1:
                if ( !PreProgressInc( __seg__, __ctx__, 2 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                Tracker.FireEvent(__eventLocations[0],__eventData[0],_stateMgrs[1].TrackDataStream );
                if (IsDebugged)
                    return Microsoft.XLANGs.Core.StopConditions.InBreakpoint;
                goto case 2;
            case 2:
                if ( !PreProgressInc( __seg__, __ctx__, 3 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                Tracker.FireEvent(__eventLocations[1],__eventData[1],_stateMgrs[1].TrackDataStream );
                if (IsDebugged)
                    return Microsoft.XLANGs.Core.StopConditions.InBreakpoint;
                goto case 3;
            case 3:
                if (!Port_BTSMultiplyRequest.GetMessageId(__ctx0__.__subWrapper0.getSubscription(this), __seg__, __ctx1__, out __msgEnv__))
                    return Microsoft.XLANGs.Core.StopConditions.Blocked;
                if (__ctx1__.__Message_MultiRequest != null)
                    __ctx1__.UnrefMessage(__ctx1__.__Message_MultiRequest);
                __ctx1__.__Message_MultiRequest = new __messagetype_BTSPracCourse_Orchestrations_Processor_MultiplyRequestSchema("Message_MultiRequest", __ctx1__);
                __ctx1__.RefMessage(__ctx1__.__Message_MultiRequest);
                Port_BTSMultiplyRequest.ReceiveMessage(0, __msgEnv__, __ctx1__.__Message_MultiRequest, null, (Microsoft.XLANGs.Core.Context)_stateMgrs[1], __seg__);
                if ( !PostProgressInc( __seg__, __ctx__, 4 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                goto case 4;
            case 4:
                if ( !PreProgressInc( __seg__, __ctx__, 5 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                {
                    Microsoft.XLANGs.RuntimeTypes.EventData __edata = new Microsoft.XLANGs.RuntimeTypes.EventData(Microsoft.XLANGs.RuntimeTypes.Operation.End | Microsoft.XLANGs.RuntimeTypes.Operation.Receive);
                    __edata.Messages.Add(__ctx1__.__Message_MultiRequest);
                    __edata.PortName = @"Port_BTSMultiplyRequest";
                    Tracker.FireEvent(__eventLocations[2],__edata,_stateMgrs[1].TrackDataStream );
                }
                if (IsDebugged)
                    return Microsoft.XLANGs.Core.StopConditions.InBreakpoint;
                goto case 5;
            case 5:
                if ( !PreProgressInc( __seg__, __ctx__, 6 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                Tracker.FireEvent(__eventLocations[3],__eventData[2],_stateMgrs[1].TrackDataStream );
                if (IsDebugged)
                    return Microsoft.XLANGs.Core.StopConditions.InBreakpoint;
                goto case 6;
            case 6:
                {
                    IWcfMultiplierService_Multiply_InputMessage __Message_WCFRequest = new IWcfMultiplierService_Multiply_InputMessage("Message_WCFRequest", __ctx1__);

                    ApplyTransform(typeof(BTSPracCourse.Orchestrations.Processor.Transform_RequestToWCF), new object[] {__Message_WCFRequest.parameters}, new object[] {__ctx1__.__Message_MultiRequest.part});

                    if (__ctx1__.__Message_WCFRequest != null)
                        __ctx1__.UnrefMessage(__ctx1__.__Message_WCFRequest);
                    __ctx1__.__Message_WCFRequest = __Message_WCFRequest;
                    __ctx1__.RefMessage(__ctx1__.__Message_WCFRequest);
                }
                __ctx1__.__Message_WCFRequest.ConstructionCompleteEvent(true);
                if ( !PostProgressInc( __seg__, __ctx__, 7 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                goto case 7;
            case 7:
                if ( !PreProgressInc( __seg__, __ctx__, 8 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                {
                    Microsoft.XLANGs.RuntimeTypes.EventData __edata = new Microsoft.XLANGs.RuntimeTypes.EventData(Microsoft.XLANGs.RuntimeTypes.Operation.End | Microsoft.XLANGs.RuntimeTypes.Operation.Construct);
                    __edata.Messages.Add(__ctx1__.__Message_WCFRequest);
                    __edata.Messages.Add(__ctx1__.__Message_MultiRequest);
                    Tracker.FireEvent(__eventLocations[4],__edata,_stateMgrs[1].TrackDataStream );
                }
                if (__ctx1__ != null && __ctx1__.__Message_MultiRequest != null)
                {
                    __ctx1__.UnrefMessage(__ctx1__.__Message_MultiRequest);
                    __ctx1__.__Message_MultiRequest = null;
                }
                if (IsDebugged)
                    return Microsoft.XLANGs.Core.StopConditions.InBreakpoint;
                goto case 8;
            case 8:
                if ( !PreProgressInc( __seg__, __ctx__, 9 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                Tracker.FireEvent(__eventLocations[5],__eventData[3],_stateMgrs[1].TrackDataStream );
                if (IsDebugged)
                    return Microsoft.XLANGs.Core.StopConditions.InBreakpoint;
                goto case 9;
            case 9:
                if (!__ctx1__.PrepareToPendingCommit(__seg__))
                    return Microsoft.XLANGs.Core.StopConditions.Blocked;
                if ( !PostProgressInc( __seg__, __ctx__, 10 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                goto case 10;
            case 10:
                if ( !PreProgressInc( __seg__, __ctx__, 11 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                Port_WCFService.SendMessage(0, __ctx1__.__Message_WCFRequest, null, null, out __ctx0__.__subWrapper1, __ctx1__, __seg__ );
                if ((stopOn & Microsoft.XLANGs.Core.StopConditions.OutgoingRqst) != 0)
                    return Microsoft.XLANGs.Core.StopConditions.OutgoingRqst;
                goto case 11;
            case 11:
                if ( !PreProgressInc( __seg__, __ctx__, 12 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                {
                    Microsoft.XLANGs.RuntimeTypes.EventData __edata = new Microsoft.XLANGs.RuntimeTypes.EventData(Microsoft.XLANGs.RuntimeTypes.Operation.End | Microsoft.XLANGs.RuntimeTypes.Operation.Send);
                    __edata.Messages.Add(__ctx1__.__Message_WCFRequest);
                    __edata.PortName = @"Port_WCFService";
                    Tracker.FireEvent(__eventLocations[6],__edata,_stateMgrs[1].TrackDataStream );
                }
                if (__ctx1__ != null && __ctx1__.__Message_WCFRequest != null)
                {
                    __ctx1__.UnrefMessage(__ctx1__.__Message_WCFRequest);
                    __ctx1__.__Message_WCFRequest = null;
                }
                if (IsDebugged)
                    return Microsoft.XLANGs.Core.StopConditions.InBreakpoint;
                goto case 12;
            case 12:
                if ( !PreProgressInc( __seg__, __ctx__, 13 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                Tracker.FireEvent(__eventLocations[7],__eventData[1],_stateMgrs[1].TrackDataStream );
                if (IsDebugged)
                    return Microsoft.XLANGs.Core.StopConditions.InBreakpoint;
                goto case 13;
            case 13:
                if (!Port_WCFService.GetMessageId(__ctx0__.__subWrapper1.getSubscription(this), __seg__, __ctx1__, out __msgEnv__, _locations[0]))
                    return Microsoft.XLANGs.Core.StopConditions.Blocked;
                if (__ctx0__ != null && __ctx0__.__subWrapper1 != null)
                {
                    __ctx0__.__subWrapper1.Destroy(this, __ctx0__);
                    __ctx0__.__subWrapper1 = null;
                }
                if (__ctx1__.__Message_WCFResponse != null)
                    __ctx1__.UnrefMessage(__ctx1__.__Message_WCFResponse);
                __ctx1__.__Message_WCFResponse = new IWcfMultiplierService_Multiply_OutputMessage("Message_WCFResponse", __ctx1__);
                __ctx1__.RefMessage(__ctx1__.__Message_WCFResponse);
                Port_WCFService.ReceiveMessage(0, __msgEnv__, __ctx1__.__Message_WCFResponse, null, (Microsoft.XLANGs.Core.Context)_stateMgrs[1], __seg__);
                if (Port_WCFService != null)
                {
                    Port_WCFService.Close(__ctx1__, __seg__);
                    Port_WCFService = null;
                }
                if ( !PostProgressInc( __seg__, __ctx__, 14 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                goto case 14;
            case 14:
                if ( !PreProgressInc( __seg__, __ctx__, 15 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                {
                    Microsoft.XLANGs.RuntimeTypes.EventData __edata = new Microsoft.XLANGs.RuntimeTypes.EventData(Microsoft.XLANGs.RuntimeTypes.Operation.End | Microsoft.XLANGs.RuntimeTypes.Operation.Receive);
                    __edata.Messages.Add(__ctx1__.__Message_WCFResponse);
                    __edata.PortName = @"Port_WCFService";
                    Tracker.FireEvent(__eventLocations[8],__edata,_stateMgrs[1].TrackDataStream );
                }
                if (IsDebugged)
                    return Microsoft.XLANGs.Core.StopConditions.InBreakpoint;
                goto case 15;
            case 15:
                if ( !PreProgressInc( __seg__, __ctx__, 16 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                Tracker.FireEvent(__eventLocations[9],__eventData[2],_stateMgrs[1].TrackDataStream );
                if (IsDebugged)
                    return Microsoft.XLANGs.Core.StopConditions.InBreakpoint;
                goto case 16;
            case 16:
                {
                    __messagetype_BTSPracCourse_Orchestrations_Processor_ResponseSchema __Message_Response = new __messagetype_BTSPracCourse_Orchestrations_Processor_ResponseSchema("Message_Response", __ctx1__);

                    ApplyTransform(typeof(BTSPracCourse.Orchestrations.Processor.Transform_2), new object[] {__Message_Response.part}, new object[] {__ctx1__.__Message_WCFResponse.parameters});

                    if (__ctx1__.__Message_Response != null)
                        __ctx1__.UnrefMessage(__ctx1__.__Message_Response);
                    __ctx1__.__Message_Response = __Message_Response;
                    __ctx1__.RefMessage(__ctx1__.__Message_Response);
                }
                __ctx1__.__Message_Response.ConstructionCompleteEvent(true);
                if ( !PostProgressInc( __seg__, __ctx__, 17 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                goto case 17;
            case 17:
                if ( !PreProgressInc( __seg__, __ctx__, 18 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                {
                    Microsoft.XLANGs.RuntimeTypes.EventData __edata = new Microsoft.XLANGs.RuntimeTypes.EventData(Microsoft.XLANGs.RuntimeTypes.Operation.End | Microsoft.XLANGs.RuntimeTypes.Operation.Construct);
                    __edata.Messages.Add(__ctx1__.__Message_Response);
                    __edata.Messages.Add(__ctx1__.__Message_WCFResponse);
                    Tracker.FireEvent(__eventLocations[10],__edata,_stateMgrs[1].TrackDataStream );
                }
                if (__ctx1__ != null && __ctx1__.__Message_WCFResponse != null)
                {
                    __ctx1__.UnrefMessage(__ctx1__.__Message_WCFResponse);
                    __ctx1__.__Message_WCFResponse = null;
                }
                if (IsDebugged)
                    return Microsoft.XLANGs.Core.StopConditions.InBreakpoint;
                goto case 18;
            case 18:
                if ( !PreProgressInc( __seg__, __ctx__, 19 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                Tracker.FireEvent(__eventLocations[11],__eventData[3],_stateMgrs[1].TrackDataStream );
                if (IsDebugged)
                    return Microsoft.XLANGs.Core.StopConditions.InBreakpoint;
                goto case 19;
            case 19:
                if (!__ctx1__.PrepareToPendingCommit(__seg__))
                    return Microsoft.XLANGs.Core.StopConditions.Blocked;
                if ( !PostProgressInc( __seg__, __ctx__, 20 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                goto case 20;
            case 20:
                if ( !PreProgressInc( __seg__, __ctx__, 21 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                Port_BTSMultiplyRequest.SendMessage(0, __ctx1__.__Message_Response, null, null, __ctx1__, __seg__ , Microsoft.XLANGs.Core.ActivityFlags.NextActivityPersists );
                if (Port_BTSMultiplyRequest != null)
                {
                    Port_BTSMultiplyRequest.Close(__ctx1__, __seg__);
                    Port_BTSMultiplyRequest = null;
                }
                if ((stopOn & Microsoft.XLANGs.Core.StopConditions.OutgoingResp) != 0)
                    return Microsoft.XLANGs.Core.StopConditions.OutgoingResp;
                goto case 21;
            case 21:
                if ( !PreProgressInc( __seg__, __ctx__, 22 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                {
                    Microsoft.XLANGs.RuntimeTypes.EventData __edata = new Microsoft.XLANGs.RuntimeTypes.EventData(Microsoft.XLANGs.RuntimeTypes.Operation.End | Microsoft.XLANGs.RuntimeTypes.Operation.Send);
                    __edata.Messages.Add(__ctx1__.__Message_Response);
                    __edata.PortName = @"Port_BTSMultiplyRequest";
                    Tracker.FireEvent(__eventLocations[12],__edata,_stateMgrs[1].TrackDataStream );
                }
                if (__ctx1__ != null && __ctx1__.__Message_Response != null)
                {
                    __ctx1__.UnrefMessage(__ctx1__.__Message_Response);
                    __ctx1__.__Message_Response = null;
                }
                if (IsDebugged)
                    return Microsoft.XLANGs.Core.StopConditions.InBreakpoint;
                goto case 22;
            case 22:
                if ( !PreProgressInc( __seg__, __ctx__, 23 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                Tracker.FireEvent(__eventLocations[13],__eventData[4],_stateMgrs[1].TrackDataStream );
                if (IsDebugged)
                    return Microsoft.XLANGs.Core.StopConditions.InBreakpoint;
                goto case 23;
            case 23:
                if (!__ctx1__.CleanupAndPrepareToCommit(__seg__))
                    return Microsoft.XLANGs.Core.StopConditions.Blocked;
                if ( !PostProgressInc( __seg__, __ctx__, 24 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                goto case 24;
            case 24:
                if ( !PreProgressInc( __seg__, __ctx__, 25 ) )
                    return Microsoft.XLANGs.Core.StopConditions.Paused;
                __ctx1__.OnCommit();
                goto case 25;
            case 25:
                __seg__.SegmentDone();
                _segments[0].PredecessorDone(this);
                break;
            }
            return Microsoft.XLANGs.Core.StopConditions.Completed;
        }
        private static Microsoft.XLANGs.Core.CachedObject[] _locations = new Microsoft.XLANGs.Core.CachedObject[] {
            new Microsoft.XLANGs.Core.CachedObject(new System.Guid("{9DEAD754-64A0-4AAA-8B79-C5ADF8882234}"))
        };

    }

    [Microsoft.XLANGs.BaseTypes.BPELExportableAttribute(false)]
    sealed public class _MODULE_PROXY_ { }
}
